package com.grp6.game.player;

import static org.junit.Assert.*;

import java.util.List;

import org.junit.Test;

import com.grp6.game.difficultystrategy.INextMoveStrategy;
import com.grp6.game.gameactions.IMove;
import com.grp6.game.model.IModel;
import com.grp6.game.model.IPiece;
import com.grp6.game.view.AbstractDialogView;

public class AbstractComputerPlayerTest {

	private static class NextMoveStrategyAux implements INextMoveStrategy{
		@Override
		public IMove getNextMove() { return null; }
		@Override
		public List<IMove> getSuggestedMoves() { return null; }
	}
	
	private static class AbstractComputerPlayerSubject extends AbstractComputerPlayer{
		
		
		public AbstractComputerPlayerSubject() {
			super(new NextMoveStrategyAux());
		}

		@Override
		public boolean isHasWon() {return false;}

		@Override
		public void setHasWon(boolean hasWon) {}

		@Override
		public List<IPiece> getPieces() { return null; }

		@Override
		public void setPieces(List<IPiece> pieces) {}
		
	}
	
	
	
	@Test
	public void testGetNextMove() {
		AbstractComputerPlayerSubject subject = new AbstractComputerPlayerSubject();
		subject.getNextMove();
	}

	@Test
	public void testGetSuggestedMoves() {
		AbstractComputerPlayerSubject subject = new AbstractComputerPlayerSubject();
		subject.getSuggestedMoves();
	}

	@Test
	public void testGetNextMoveStrategy() {
		AbstractComputerPlayerSubject subject = new AbstractComputerPlayerSubject();
		subject.getNextMoveStrategy();
	}
	
	@Test
	public void test(){
		AbstractComputerPlayerSubject subject = new AbstractComputerPlayerSubject();
		subject.setNextMoveStrategy(new NextMoveStrategyAux());
	}

}
